EMA Envelope - Signal with Stoploss and Takeprofit LevelsDescription:
This Pine Script indicator implements the EMA Envelope strategy, which utilizes Exponential Moving Averages (EMA) to create an envelope around the price chart. The strategy generates buy and sell signals based on the crossing of the price above and below the upper and lower EMA envelopes, respectively. It also incorporates additional features such as stop-loss and take-profit levels for risk management.
Indicator Settings:
EMA Length: Specifies the period for the short-term Exponential Moving Average.
Long Term EMA Length: Defines the period for the long-term Exponential Moving Average used for signal filtering.
Take Profit Ratio: Determines the ratio for calculating the take-profit levels based on the stop-loss.
Filter Signal on Long Term EMA: Enables or disables the filtering of buy/sell signals using the long-term EMA.
Show only recent signal: When enabled, shows only the most recent buy/sell signals.
Buy and Sell Signals:
The indicator generates buy signals when the price crosses above the upper EMA envelope and the previous low was below the upper EMA envelope. Additionally, you can choose to filter buy signals based on whether the closing price is above the long-term EMA.
Conversely, sell signals are generated when the price crosses below the lower EMA envelope, and the previous high was above the lower EMA envelope. Similar to buy signals, sell signals can also be filtered using the long-term EMA.
Note: Signal works well on Higher Timeframes like Daily/8hrs/4hrs/1hr.
Stop-Loss and Take-Profit Levels:
For buy signals, the stop-loss is set at the lower EMA level, while the take-profit level is calculated by adding a specified ratio of the difference between the low and the stop-loss level to the low price.
For sell signals, the stop-loss is set at the upper EMA level, and the take-profit level is calculated by subtracting a specified ratio of the difference between the stop-loss level and the high price from the high price.
Disclaimer:
This indicator is provided for educational and informational purposes only. Trading involves significant risk, and past performance does not guarantee future results. Users are solely responsible for their trading decisions and should conduct their own research and risk management. The author shall not be held liable for any losses or damages arising from the use of this indicator.
Note: Always test the indicator thoroughly on historical data and consider paper trading before applying it to live trading environments.
在腳本中搜尋"Exponential Moving Average"
Regularized-Moving-Average Oscillator SuiteThe Regularized-MA Oscillator Suite is a versatile indicator that transforms any moving average into an oscillator. It comprises up to 13 different moving average types, including KAMA, T3, and ALMA. This indicator serves as a valuable tool for both trend following and mean reversion strategies, providing traders and investors with enhanced insights into market dynamics.
Methodology:
The Regularized MA Oscillator Suite calculates the moving average (MA) based on user-defined parameters such as length, moving average type, and custom smoothing factors. It then derives the mean and standard deviation of the MA using a normalized period. Finally, it computes the Z-Score by subtracting the mean from the MA and dividing it by the standard deviation.
KAMA (Kaufman's Adaptive Moving Average):
KAMA is a unique moving average type that dynamically adjusts its smoothing period based on market volatility. It adapts to changing market conditions, providing a smoother response during periods of low volatility and a quicker response during periods of high volatility. This allows traders to capture trends effectively while reducing noise.
T3 (Tillson's Exponential Moving Average):
T3 is an exponential moving average that incorporates additional smoothing techniques to reduce lag and provide a more responsive indicator. It aims to maintain a balance between responsiveness and smoothness, allowing traders to identify trend reversals with greater accuracy.
ALMA (Arnaud Legoux Moving Average):
ALMA is a moving average type that utilizes a combination of linear regression and exponential moving average techniques. It offers a unique way of calculating the moving average by providing a smoother and more accurate representation of price trends. ALMA reduces lag and noise, enabling traders to identify trend changes and potential entry or exit points more effectively.
Z-Score:
The Z-Score calculation in the Regularized-MA Oscillator Suite standardizes the values of the moving average. It measures the deviation of each data point from the mean in terms of standard deviations. By normalizing the moving average through the Z-Score, the indicator enables traders to assess the relative position of price in relation to its mean and volatility. This information can be valuable for identifying overbought and oversold conditions, as well as potential trend reversals.
Utility:
The Regularized-MA Oscillator Suite with its unique moving average types and Z-Score calculation offers traders and investors powerful analytical tools. It can be used for trend following strategies by analyzing the oscillator's position relative to the midline. Traders can also employ it as a mean reversion tool by identifying peak values above user-defined deviations. These features assist in identifying potential entry and exit points, enhancing trading decisions and market analysis.
Key Features:
Variety of 13 MA types.
Potential reversal point bubbles.
Bar coloring methods - Trend (Midline cross), Extremities, Reversions, Slope
Example Charts:
Mad_MATHLibrary "MAD_MATH"
This is a mathematical library where I store useful kernels, filters and selectors for the different types of computations.
This library also contains opensource code from other scripters.
Future extensions are very likely, there are some functions I would like to add, but I have to wait for approvals so i can include them.
Ehlers_EMA(_src, _length)
Calculates the Ehlers Exponential Moving Average (Ehlers_EMA)
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The length for the Ehlers EMA
Returns: The Ehlers EMA value
Ehlers_Gaussian(_src, _length)
Calculates the Ehlers Gaussian Filter
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The length for the Ehlers Gaussian Filter
Returns: The Ehlers Gaussian Filter value
Ehlers_supersmoother(_src, _length)
Calculates the Ehlers Supersmoother
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The length for the Ehlers Supersmoother
Returns: The Ehlers Supersmoother value
Ehlers_SMA_fast(_src, _length)
Calculates the Ehlers Simple Moving Average (SMA) Fast
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The length for the Ehlers SMA Fast
Returns: The Ehlers SMA Fast value
Ehlers_EMA_fast(_src, _length)
Calculates the Ehlers Exponential Moving Average (EMA) Fast
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The length for the Ehlers EMA Fast
Returns: The Ehlers EMA Fast value
Ehlers_RSI_fast(_src, _length)
Calculates the Ehlers Relative Strength Index (RSI) Fast
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The length for the Ehlers RSI Fast
Returns: The Ehlers RSI Fast value
Ehlers_Band_Pass_Filter(_src, _length)
Calculates the Ehlers BandPass Filter
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The length for the Ehlers BandPass Filter
Returns: The Ehlers BandPass Filter value
Ehlers_Butterworth(_src, _length)
Calculates the Ehlers Butterworth Filter
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The length for the Ehlers Butterworth Filter
Returns: The Ehlers Butterworth Filter value
Ehlers_Two_Pole_Gaussian_Filter(_src, _length)
Calculates the Ehlers Two-Pole Gaussian Filter
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The length for the Ehlers Two-Pole Gaussian Filter
Returns: The Ehlers Two-Pole Gaussian Filter value
Ehlers_Two_Pole_Butterworth_Filter(_src, _length)
Calculates the Ehlers Two-Pole Butterworth Filter
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The length for the Ehlers Two-Pole Butterworth Filter
Returns: The Ehlers Two-Pole Butterworth Filter value
Ehlers_Band_Stop_Filter(_src, _length)
Calculates the Ehlers Band Stop Filter
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The length for the Ehlers Band Stop Filter
Returns: The Ehlers Band Stop Filter value
Ehlers_Smoother(_src)
Calculates the Ehlers Smoother
Parameters:
_src (float) : The source series for calculation
Returns: The Ehlers Smoother value
Ehlers_High_Pass_Filter(_src, _length)
Calculates the Ehlers High Pass Filter
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The length for the Ehlers High Pass Filter
Returns: The Ehlers High Pass Filter value
Ehlers_2_Pole_High_Pass_Filter(_src, _length)
Calculates the Ehlers Two-Pole High Pass Filter
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The length for the Ehlers Two-Pole High Pass Filter
Returns: The Ehlers Two-Pole High Pass Filter value
pr(_src, _length)
pr Calculates the percentage rank (PR) of a value within a range.
Parameters:
_src (float) : The source value for which the percentage rank is calculated. It represents the value to be ranked within the range.
_length (simple int) : The _length of the range over which the percentage rank is calculated. It determines the number of bars considered for the calculation.
Returns: The percentage rank (PR) of the source value within the range, adjusted by adding 50 to the result.
smma(_src, _length)
Calculates the SMMA (Smoothed Moving Average)
Parameters:
_src (float) : The source series for calculation
_length (simple int)
Returns: The SMMA value
hullma(_src, _length)
Calculates the Hull Moving Average (HullMA)
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The _length of the HullMA
Returns: The HullMA value
tma(_src, _length)
Calculates the Triple Moving Average (TMA)
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The _length of the TMA
Returns: The TMA value
dema(_src, _length)
Calculates the Double Exponential Moving Average (DEMA)
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The _length of the DEMA
Returns: The DEMA value
tema(_src, _length)
Calculates the Triple Exponential Moving Average (TEMA)
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The _length of the TEMA
Returns: The TEMA value
w2ma(_src, _length)
Calculates the Normalized Double Moving Average (N2MA)
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The _length of the N2MA
Returns: The N2MA value
wma(_src, _length)
Calculates the Normalized Moving Average (NMA)
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The _length of the NMA
Returns: The NMA value
nma(_open, _close, _length)
Calculates the Normalized Moving Average (NMA)
Parameters:
_open (float) : The open price series
_close (float) : The close price series
_length (simple int) : The _length for finding the highest and lowest values
Returns: The NMA value
lma(_src, _length)
Parameters:
_src (float)
_length (simple int)
zero_lag(_src, _length, gamma1, zl)
Calculates the Zero Lag Moving Average (ZeroLag)
Parameters:
_src (float) : The source series for calculation
_length (simple int) : The length for the moving average
gamma1 (simple int) : The coefficient for calculating 'd'
zl (simple bool) : Boolean flag for applying Zero Lag
Returns: An array containing the ZeroLag Moving Average and a boolean flag indicating if it's flat
copyright HPotter, thanks for that great function
chebyshevI(src, len, ripple)
Calculates the Chebyshev Type I Filter
Parameters:
src (float) : The source series for calculation
len (int) : The length of the filter
ripple (float) : The ripple factor for the filter
Returns: The output of the Chebyshev Type I Filter
math from Pafnuti Lwowitsch Tschebyschow (1821–1894)
Thanks peacefulLizard50262 for the find and translation
chebyshevII(src, len, ripple)
Calculates the Chebyshev Type II Filter
Parameters:
src (float) : The source series for calculation
len (int) : The length of the filter
ripple (float) : The ripple factor for the filter
Returns: The output of the Chebyshev Type II Filter
math from Pafnuti Lwowitsch Tschebyschow (1821–1894)
Thanks peacefulLizard50262 for the find
wavetrend(_src, _n1, _n2)
Calculates the WaveTrend indicator
Parameters:
_src (float) : The source series for calculation
_n1 (simple int) : The period for the first EMA calculation
_n2 (simple int) : The period for the second EMA calculation
Returns: The WaveTrend value
f_getma(_type, _src, _length, ripple)
Calculates various types of moving averages
Parameters:
_type (simple string) : The type of indicator to calculate
_src (float) : The source series for calculation
_length (simple int) : The length for the moving average or indicator
ripple (simple float)
Returns: The calculated moving average or indicator value
f_getfilter(_type, _src, _length)
Calculates various types of filters
Parameters:
_type (simple string) : The type of indicator to calculate
_src (float) : The source series for calculation
_length (simple int) : The length for the moving average or indicator
Returns: The filtered value
f_getoszillator(_type, _src, _length)
Calculates various types of Deviations and other indicators
Parameters:
_type (simple string) : The type of indicator to calculate
_src (float) : The source series for calculation
_length (simple int) : The length for the moving average or indicator
Returns: The calculated moving average or indicator value
Exponential ADR with Price TargetsThis script is designed to help you analyze price movements in the financial markets by calculating the Average Daily Range (ADR), adjusting it based on exponentiality and generating price targets based on that range.
The ADR represents the average range between the highest and lowest prices of a trading instrument during a specific period. It gives you an idea of how much the price typically moves in a day. In this script, we calculate the ADR using Simple Moving Averages (SMA) of the high and low prices over a certain length of time. You can customize this length according to your preference.
To make the ADR smoother and more responsive to recent price changes, we apply an Exponential Moving Average (EMA) to the ADR values. The EMA places more weight on recent data, giving you a more up-to-date measure of the ADR. The length of the EMA is also adjustable.
Once we have the Exponential ADR, we can generate price targets based on it. Price targets are potential levels where the price may reach in the future. We calculate these targets by adding or subtracting a certain multiple of the Exponential ADR from the current closing price. The multiple is determined by a parameter called the "Target Multiplier." You can adjust this value to control the distance of the price targets from the closing price.
In addition to plotting the Exponential ADR as a histogram on the chart, we create a table that displays the price targets. The table shows three bullish (positive) targets and three bearish (negative) targets. The targets are labeled as "Bull Target" or "Bear Target" followed by a number indicating the target's order. For each target, we display the corresponding price level.
To estimate the potential price levels, we used a formula that takes into account the current closing price and a value called the Exponential Average Daily Range (Exponential ADR). The Exponential ADR represents the average range of price movement over a specific period.
To calculate the price targets, we multiplied the Exponential ADR by a user-defined value called the target multiplier. This target multiplier allows traders to control the distance of the price targets from the current price. The resulting value indicates the desired distance from the current price for each target level.
For bullish targets, we added the calculated value to the current closing price. This suggests potential upward movement in the price. On the other hand, for bearish targets, we subtracted the calculated value from the current closing price. This indicates potential downward movement in the price.
By providing multiple target levels, such as level 1, level 2, and level 3, traders can assess different scenarios and potential price outcomes. These target levels help traders identify possible price levels where they might consider taking profit or adjusting their trading positions.
It's important to note that these price targets are not guaranteed to be reached, but they serve as reference points based on historical price behavior and the Exponential ADR. Traders can use them as part of their overall trading strategy and decision-making process.
Adjust the input parameters according to your desired settings, such as the ADR length, EMA length, target multiplier, table position, and table style. The indicator will then calculate and display the Exponential ADR and price targets on the chart, helping you identify potential levels of support and resistance for your trading decisions.
Fast EMA above Slow EMA with MACD (by Coinrule)An exponential moving average ( EMA ) is a type of moving average (MA) that places a greater weight and significance on the most recent data points. The exponential moving average is also referred to as the exponentially weighted moving average . An exponentially weighted moving average reacts more significantly to recent price changes than a simple moving average simple moving average ( SMA ), which applies an equal weight to all observations in the period.
Moving average convergence divergence ( MACD ) is a trend-following momentum indicator that shows the relationship between two moving averages of a security’s price. The MACD is calculated by subtracting the 26-period exponential moving average ( EMA ) from the 12-period EMA .
The result of that calculation is the MACD line. A nine-day EMA of the MACD called the "signal line," is then plotted on top of the MACD line, which can function as a trigger for buy and sell signals. Traders may buy the coin when the MACD crosses above its signal line and sell—or short—the security when the MACD crosses below the signal line. Moving average convergence divergence ( MACD ) indicators can be interpreted in several ways, but the more common methods are crossovers, divergences, and rapid rises/falls.
The Strategy enters and closes the trade when the following conditions are met:
LONG
The MACD histogram turns bullish
EMA8 is greater than EMA26
EXIT
Price increases 3% trailing
Price decreases 1% trailing
This strategy is back-tested from 1 January 2022 to simulate how the strategy would work in a bear market and provides good returns.
Pairs that produce very strong results include AXSUSDT on the 5-minute timeframe. This short timeframe means that this strategy opens and closes trades regularly.
Additionally, the trailing stop loss and take profit conditions can also be changed to match your needs.
The strategy assumes each order is using 30% of the available coins to make the results more realistic and to simulate you only ran this strategy on 30% of your holdings. A trading fee of 0.1% is also taken into account and is aligned to the base fee applied on Binance.
Catching the Bottom (by Coinrule)This script utilises the RSI and EMA indicators to enter and close the trade.
The relative strength index (RSI) is a momentum indicator used in technical analysis. RSI measures the speed and magnitude of a security's recent price changes to evaluate overvalued or undervalued conditions in the price of that security. The RSI is displayed as an oscillator (a line graph) on a scale of zero to 100. The RSI can do more than point to overbought and oversold securities. It can also indicate securities that may be primed for a trend reversal or corrective pullback in price. It can signal when to buy and sell. Traditionally, an RSI reading of 70 or above indicates an overbought situation. A reading of 30 or below indicates an oversold condition.
An exponential moving average (EMA) is a type of moving average (MA) that places a greater weight and significance on the most recent data points. The exponential moving average is also referred to as the exponentially weighted moving average. An exponentially weighted moving average reacts more significantly to recent price changes than a simple moving average simple moving average (SMA), which applies an equal weight to all observations in the period.
The strategy enters and exits the trade based on the following conditions.
ENTRY
RSI has a decrease of 3.
RSI <40.
EMA100 has crossed above the EMA50.
EXIT
RSI is greater than 65.
EMA9 has crossed above EMA50.
This strategy is back tested from 1 April 2022 to simulate how the strategy would work in a bear market and provides good returns.
Pairs that produce very strong results include ETH on the 5m timeframe, BNB on 5m timeframe, XRP on the 45m timeframe, MATIC on the 30m timeframe and MATIC on the 2H timeframe.
The strategy assumes each order is using 30% of the available coins to make the results more realistic and to simulate you only ran this strategy on 30% of your holdings. A trading fee of 0.1% is also taken into account and is aligned to the base fee applied on Binance.
SUPER MACD📈 MACD Indicator Update - Version 2
🔹 New Features and Improvements:
1️⃣ New MACD Calculation Options:
Users can now choose from various Moving Averages to calculate the MACD. The default options are SMA (Simple Moving Average) and EMA (Exponential Moving Average), but there are 14 other versions available to experiment with:
SMA (Simple Moving Average)
EMA (Exponential Moving Average)
WMA (Weighted Moving Average)
RMA (Smoothed Moving Average)
HMA (Hull Moving Average)
JMA (Jurik Moving Average)
DEMA (Double Exponential Moving Average)
TEMA (Triple Exponential Moving Average)
LSMA (Least Squares Moving Average)
VWMA (Volume-Weighted Moving Average)
SMMA (Smoothed Moving Average)
KAMA (Kaufman’s Adaptive Moving Average)
ALMA (Arnaud Legoux Moving Average)
FRAMA (Fractal Adaptive Moving Average)
VIDYA (Variable Index Dynamic Average)
2️⃣ Improved Input Visibility and Organization:
We’ve reorganized the inputs so that the most commonly used ones are now placed at the beginning for quicker and more convenient configuration.
3️⃣ Bug Fixes and Code Improvements:
Minor bugs have been fixed, and the code has been optimized for better stability and performance. The code is now cleaner and fully functional in version 6.
4️⃣ Cometreon Public Library Integration:
To lighten the code and improve its modularity, we’ve integrated the Cometreon public library. This makes the code more efficient and reduces the need to duplicate common functions.
☄️ With this update, the MACD indicator becomes even more versatile and user-friendly, offering a wide range of calculation methods and an improved interface!
EMA curvesPlot EMAs for lengths 9, 21, 55 ,100, 200
An exponential moving average (EMA) is a type of moving average (MA) that places a greater weight and significance on the most recent data points. The exponential moving average is also referred to as the exponentially weighted moving average. An exponentially weighted moving average reacts more significantly to recent price changes than a simple moving average simple moving average (SMA), which applies an equal weight to all observations in the period.
KAIRI RELATIVE INDEXAn old but gold Japanese indicator for Mean Reverting strategies and ideal for Pairs Trading...
The Kairi Relative Index measures the distance between closing prices and a Moving Average in percent value (generally SMA).
Extreme reading in the KRI are considered buy and sell signals.
Extreme readings will vary by asset, with more volatile assets reaching much higher and lower extremes that more sedate assets.
The KRI is not an accurate timing signal, and therefore, should be combined with other forms of analysis to generate trade signals.
You can calculate percent difference between the price and 10 different types of Moving Averages in this version of KAIRI as:
SMA : Simple Moving Average
EMA : Exponential Moving Average
WMA : Weighted Moving Average
TMA : Triangular Moving Average
VAR : Variable Index Dynamic Moving Average a.k.a. VIDYA
WWMA : Welles Wilder's Moving Average
ZLEMA : Zero Lag Exponential Moving Average
TSF : True Strength Force
HULL : Hull Moving Average
VWMA: Volume Veighted Moving Average
Personal advice: try using bigger length of Moving Averages like 50-100-200 for pairs and mean reversion strategies
STD Stepped Ehlers Optimal Tracking Filter MTF w/ Alerts [Loxx]STD Stepped Ehlers Optimal Tracking Filter MTF w/ Alerts is the traditional Ehlers Optimal Tracking Filter but with stepped price levels, access to multiple time frames, and alerts.
What is Ehlers Optimal Tracking Filter?
From "OPTIMAL TRACKING FILTERS" by John Ehlers:
"Dr. R.E. Kalman introduced his concept of optimum estimation in 1960. Since that time, his technique has proven to be a powerful and practical tool. The approach is particularly well suited for optimizing the performance of modern terrestrial and space navigation systems. Many traders not directly involved in system analysis have heard about Kalman filtering and have expressed an interest in learning more about it for market applications. Although attempts have been made to provide simple, intuitive explanations, none has been completely successful. Almost without exception, descriptions have become mired in the jargon and state-space notation of the “cult”.
Surprisingly, in spite of the obscure-looking mathematics (the most impenetrable of which can be found in Dr. Kalman’s original paper), Kalman filtering is a fairly direct and simple concept. In the spirit of being pragmatic, we will not deal with the full-blown matrix equations in this description and we will be less than rigorous in the application to trading. Rigorous application requires knowledge of the probability distributions of the statistics. Nonetheless we end with practically useful results. We will depart from the classical approach by working backwards from Exponential Moving Averages. In this process, we introduce a way to create a nearly zero lag moving average. From there, we will use the concept of a Tracking Index that optimizes the filter tracking for the given uncertainty in price movement and the uncertainty in our ability to measure it."
Included:
-Standard deviation stepping filter, price is required to exceed XX deviations before the moving average line shifts direction
-Selection of filtering based on source price, the moving average, or both; you can also set the Filter deviations to 0 for no filtering at all
-Toggle on/off bar coloring
-Toggle on/off signals
-Long/Short alerts
AMASling - All Moving Average Sling ShotThis indicator modifies the SlingShot System by Chris Moody to allow it to be based on 'any' Fast and Slow moving average pair. Open Long / Close Long / Open Short / Close Short alerts can be generated for automated bot trading based on the SlingShot strategy:
• Conservative Entry = Fast MA above Slow MA, and previous bar close below Fast MA, and current price above Fast MA
• Conservative Entry = Fast MA below Slow MA, and previous bar close above Fast MA, and current price below Fast MA
• Aggressive Entry = Fast MA above Slow MA, and price below Fast MA
• Aggressive Exit = Fast MA below Slow MA, and price above Fast MA
Entries and exits can also be made based on moving average crossovers, I initially put this in to make it easy to compare to a more standard strategy, but upon backtesting combining crossovers with the SlingShot appeared to produce better results on some charts.
Alerts can also be filtered to allow long deals only when the fast moving average is above the slow moving average (uptrend) and short deals only when the fast moving average is below the slow moving averages (downtrend).
If you have a strategy that can buy based on External Indicators you can use the 'Backtest Signal' which plots the values set in the 'Long / Short Signals' section.
The Fast, Slow and Signal Moving Averages can be set to:
• Simple Moving Average (SMA)
• Exponential Moving Average (EMA)
• Weighted Moving Average (WMA)
• Volume-Weighted Moving Average (VWMA)
• Hull Moving Average (HMA)
• Exponentially Weighted Moving Average (RMA) (SMMA)
• Linear regression curve Moving Average (LSMA)
• Double EMA (DEMA)
• Double SMA (DSMA)
• Double WMA (DWMA)
• Double RMA (DRMA)
• Triple EMA (TEMA)
• Triple SMA (TSMA)
• Triple WMA (TWMA)
• Triple RMA (TRMA)
• Symmetrically Weighted Moving Average (SWMA) ** length does not apply **
• Arnaud Legoux Moving Average (ALMA)
• Variable Index Dynamic Average (VIDYA)
• Fractal Adaptive Moving Average (FRAMA)
'Backtest Signal' and 'Deal State' are plotted to display.none, so change the Style Settings for the chart if you need to see them for testing.
Yes I did choose the name because 'It's Amasling!'
Any RibbonThis indicator displays a ribbon of two individually configured Fast and Slow and Moving Averages for a fixed time frame. It also displays the last close price of the configured time frame, colored green when above the band, red below and blue when interacting. A label shows the percentage distance of the current price from the band, (again red below, green above, blue interacting), when the price is within the band it will show the percentage distance from median of the band.
The Fast and Slow Moving Averages can be set to:
Simple Moving Average (SMA)
Exponential Moving Average (EMA)
Weighted Moving Average (WMA)
Volume-Weighted Moving Average (VWMA)
Hull Moving Average (HMA)
Exponentially Weighted Moving Average (RMA) (SMMA)
Linear regression curve Moving Average (LSMA)
Double EMA (DEMA)
Double SMA (DSMA)
Double WMA (DWMA)
Double RMA (DRMA)
Triple EMA (TEMA)
Triple SMA (TSMA)
Triple WMA (TWMA)
Triple RMA (TRMA)
Symmetrically Weighted Moving Average (SWMA) ** length does not apply **
Arnaud Legoux Moving Average (ALMA)
Variable Index Dynamic Average (VIDYA)
Fractal Adaptive Moving Average (FRAMA)
I wrote this script after identifying some interesting moving average bands with my AMACD indicator and wanting to see them on the price chart. As an example look at the interactions between ETHBUSD 4hr and the band of VIDYA 32 Open and VIDYA 39 Open. Or start from the good old BTC Bull market support band, Weekly EMA 21 and SMA 20 and see if you can get a better fit. I find the Double RMA 22 a better fast option than the standard EMA 21.
[SS]_TrendAVGZones_and_GoldenRatioMAThe _TrendAVGZones_and_GoldenRatioMA is an indicator that is composed first of a channel made of three price averages ( base average, middle lower and middle upper ) in red is the previous corrections average and in green the previous rises average. So that way we the setting of stop loss targets and price targets can be set up at first glance. It adjusts to any timeframe so no worries 'bout that.
Also I added two exponential moving averages ( white and silver lines ) on the chart which I modified their equations by multiplying as it follows :
is the simple modification I added to fine tune it's precision and after some trials and errors I finally found a perfect spot. Now I tried it with historical data of Bitcoin and when the two Golden Ratio EMA crosses there's a big move coming imminently : if the white one is on top of the silver one the trend is bullish inversely the white one finds itself under the silver line then it needs to cross to expect a reversal.
rphi = 0.6180339887498948 = is the conjugate root of the golden ratio also called the silver ratio
phi = 1.6180339887498948 = golden ratio
It should be used to find short to mid term price targets selling as well as buying ones. If you're a long term trader I suggest using trend lines analysis in combination with it.
I hope to make this indicator a community owned indicator so don't hesitate to perfect it so we can build the best tool traders can hope for ! Together we will no longer ask wen lambo? we will get it!
IF you've got any question you can always DM me
take care of yourselves you future millionaires :D
-SS
Exponentially Deviating Moving Average (MZ EDMA)Exponentially Deviating Moving Average (MZ EDMA) is derived from Exponential Moving Average to predict better exit in top reversal case.
EDMA Philosophy
EDMA is calculated in following steps:
In first step, Exponentially expanding moving line is calculated with same code as of EMA but with different smoothness (1 instead of 2).
In 2nd step, Exponentially contracting moving line is calculated using 1st calculated line as source input and also using same code as of EMA but with different smoothness (1 instead of 2).
In 3rd step, Hull Moving Average with 3/2 of EDMA length is calculated using final line as source input. This final HMA will be equal to Exponentially Deviating Moving Average.
EDMA Advantages
EDMA's main advantage is that in case of top price reversal it deviates from conventional EMA of 2*Length. This benefits in using EDMA for EMA cross with quick signals avoiding unnecessary crossovers. EDMA's deviation in case of top reversal can be seen as below:
EDMA presents better smoothened curve which acts as better Support and resistance. EDMA coparison with conventional EMA of 2*length of EDMA is as follows.
Additional Features
EMA Band: EMA band is shown on chart to better visualize EMA cross with EDMA.
Dynamic Coloring: Chikou Filter library is used for derivation of dynamic coloring of EDMA and its band.
Alerts: Alerts are provided of all trade signals. Weak buy/sell would trigger if EMA of 2*EDMA_length crosses EDMA. Strong buy/sell would trigger if EMA of same length as of EDMA crosses EDMA.
Trade Confirmation with Chikou Filter: Trend filteration from Chikou filter library is used as an option to enhance trades signals accuracy.
Defaults
Currently default EDMA and EMA1 length is set to 20 period which I've found better for higher timeframes but this can be adjusted according to user's timeframe. I would soon add Multi Timeframe option in script too. Chikou filter's period is set to 25.
MACD Alert [All MA in one] [Smart Crypto Trade (SCT)]This code is a gift from "Smart Crypto Trade (SCT)" group
MACD indicator contains 3 EMA, I think one of the best usage of MACD is trend detection and divergences.
In our indicator, you can select the type of Moving averages that used in macd.
You can using "MACD" based on several types of moving averages including:
Exponential Moving Average ( EMA )
Volume-Weighted Moving Average ( VWMA )
Simple Moving Average ( SMA )
Weighted Moving Average ( WMA )
Exponentially Weighted Moving Average (RMA) that used in RSI
Smoothed Moving Average ( SMMA )
Arnaud Legoux Moving Average ( ALMA )
Double EMA ( DEMA )
Double SMA (DSMA)
Double WMA (DWMA)
Double RMA (DRMA)
Triple EMA ( TEMA )
Triple SMA (TSMA)
Triple WMA (TWMA)
Triple RMA (TRMA)
Linear regression curve Moving Average ( LSMA )
Variable Index Dynamic Average ( VIDYA )
Fractal Adaptive Moving Average ( FRAMA )
In other words we tried to collect all the most popular MAs in our MACD indicator.
In addition, you can use four types of alert or alarm conditions for detection LONG or SHORT positions and trends. For this, you must set an alert in alert tab and set the condition based on four defaults conditions.
Enjoy
User Selectable Moving Average GuppyA version of the popular "Moving Average Ribbon" or "Guppy" indicators, except nearly everything about it is user selectable. The user can change the source, period, and type of moving average used for every single line on the chart. Note: The visuals are fairly intensive and may take a moment to catch up after adjusting settings.
Credit: This script utilizes the "Color Gradient Framework" tutorial by LucF (PineCoders) to create gradient visuals, which are also customizable for the user.
Moving Average Options:
Running (SMoothed) Moving Average (RMA or SMMA) - Slowest
Simple Moving Average (SMA) - Slow
Exponential Moving Average (EMA) - Responds faster to price than SMA
Weighted Moving Average (WMA)
Volume-Weighted Moving Average (VWMA)
Triple EMA (TEMA)
Exponential Hull Moving Average (EHMA) - Hull with Smoothing (Slower than Hull)
Least Squares Moving Average (LSMA) - Simple Linear Regression
Arnaud Legoux Moving Average (ALMA) - Adjustable, set offset=1 to be current, offset=0.85 for good smoothing (Slower)
Hull Moving Average (HMA) - Normally responds fastest to price of all options
Value Added :
This script is unique in that it allows the user to chart the "Guppy", except nearly everything about it is customizable. The user can change the source, period, and type of moving average used for every single line.
Typically, the Guppy is plotted with simple moving average or exponential moving average, which respond much slower to price than the Hull Moving Average, which this indicator uses as default. (Elimination of lag)
The Hull MA settings for the highest time frame moving averages should work well for assessing the overall macro trend, with a nice visual presentation. Additional labels and alerts for the macro trend are available.
Furthermore, this script provides many more options for type of moving average than is typical for a moving average indicator that provides the user with options, including advanced options such as Hull, TEMA, and ALMA.
The visual presentation is customizable and should provide some entertainment for users who want to create pretty charts.
Multi-X by HamidBoxHello to All, introducing Multi Types Crossover strategy,
simply the best way of trading with Crossover and Crossunder Strategy, How it Works???
I added 5 types of Moving Averages,
1: Simple Moving Average ( SMA )
2: Exponential Moving Average ( EMA )
3: Weighted Moving Average ( WMA )
4: Volume Weighted Moving Average ( VWMA )
5: Relative Moving Average (RMA)
With this indicator, you can do scalping, You can trade not only with similar types of Moving Average indicators but also with different types of Moving Average indicators.
what is mean? like: Normal Condition is:
( Simple Moving Average ) Crossover to ( Simple Moving Average ), SMA x SMA
( Exponential Moving Average ) Crossover to ( Exponential Moving Average ), EMA x EMA
But we can Crossover with:
( Exponential Moving Average ) Crossover to ( Simple Moving Average ), EMA x SMA
( Simple Moving Average ) Crossover to ( Weighted Moving Average ), SMA x WMA
( Weighted Moving Average ) Crossover to ( Weighted Moving Average ), WMA x WMA
( Simple Moving Average ) Crossover to (Relative Moving Average), WMA x RMA
and also I added Moving Average ZONE in this tool, What does it work???
The zone will tell us what type of direction the market has, if the market is above the zone, it's mean we have a Bullish Trend, and if the market is below the zone, it means the market has a Bearish Trend,
so if you want to play on the safe side, never trade when the market is in Bearish Trend, and if you want to play on aggressive mood, you can skip Moving Average Zone section.
CPR, Camarilla & Moving AverageThis script is created primarily for Intraday trading but can also be used for short and long term trading. This is a combination of Central Pivot Range (CPR), Moving Averages and Camarilla Pivot levels (with inner levels). This helps you to combine the strategies of CPR and Moving Averages to identify the best trading opportunities with greater edge. Central Pivot Range and Camarilla pivots are taken from PivotBoss by Franc Ochoa.
Key features:
# Daily CPR levels
# Weekly CPR levels
# Monthly CPR levels
# Previous Day High and Lows
# Previous Week Highs and Lows
# Previous Month Highs and Lows
# Camarilla Pivots with inner Levels
# CPR Levels for the next Day, Week and Month
# 5 Simple moving averages and 5 Exponential Moving Averages
What separates this script from other scripts with CPR and Moving averages?
# One of the few indicators (if not the only one) which combines the 2 types of Moving Averages, CPR and also Camarilla Pivots.
# CPR Levels for not just the next Day, but for next Week(Weekly CPR) and Month(Monthly CPR) also.
# Hide the previous day's levels according to your wish. This is the most unique feature of this indicator. You can set the number of Daily CPR levels you want to load in the chart. This is not just for the Daily CPR but also for the Weekly and Monthly CPR also. This makes the chart less cluttered and prevents the candles from getting buried in the indicators. Please notice how the previous day's CPR levels are hidden in the displayed demo chart on the script page. In the chart, only one trading day's data is shown(by default).
# This script is OPEN SOURCE.
Strategies :
For CPR & Camarilla Strategies for intraday trading and swing trading refer to the book 'Secrets of a Pivot Boss: Revealing Proven Methods for Profiting in the Market' by Franklin O. Ochoa.
Moving averages strategies :
Moving averages can be combined and also used individually for several strategies
* 9 EMA can be used as trailing stop loss for strong moving trends that helps you to catch big moves.
* 20sma can be used not just trailing stop loss but also for taking re-entry to the trend.
* Golden cross - The golden cross occurs when a short-term moving average crosses over a major long-term moving average to the upside. This indicates a bullish turn in the market. Eg: 50 SMA cuts 200 SMA from below.
* Death Cross - The death cross occurs when the short term moving average crosses the long-term average from above. This indicates a bearish turn in the market. Eg: 50 SMA cuts 200 SMA from above.
* When 20 SMA is above 50 SMA and 20 SMA and 50 SMA are angling up like parallel lines, then it denotes bullish strength. If this happens right after Golden Cross, big moves to the upside can be expected.
* When 20 SMA is below 50 SMA and 20 SMA and 50 SMA are angling down like parallel lines, then it denotes bearish strength. If this happens right after Death Cross, big moves to the downside can be expected.
* When 20SMA and 50 SMA are going flat and crossing each other, then it denotes sideways sentiment.
Moving average strategies are taken from the book 'How to Make Money in Intraday Trading' by Ashwani Gujral. For learning more about how to combine CPR and Moving averages in your trading please refer to this book.
Pinescript v4 - The Holy Grail (Trailing Stop)After studying several other scripts, I believe I have found the Holy Grail! (Or perhaps I've just found a bug with Tradingview's Pinescript v4 language) Anyhow, I'm publishing this script in the hope that someone smarter than myself could shed some light on the fact that adding a trailing stop to any strategy seems to make it miraculously...no that's an understatement...incredulously, stupendously, mind-bendingly profitable. I'm talking about INSANE profit factors, higher than 200x, with drawdowns of <10%. Sounds too good to be true? Maybe it is...or you could hook it up to your LIVE broker, and pray it doesn't explode. This is an upgraded version of my original Pin Bar Strategy.
Recommended Chart Settings:
Asset Class: Forex
Time Frame: H1
Long Entry Conditions:
a) Exponential Moving Average Fan up trend
b) Presence of a Bullish Pin Bar
c) Pin Bar pierces the Exponential Moving Average Fan
Short Entry Conditions:
a) Exponential Moving Average down trend
b) Presence of a Bearish Pin Bar
c) Pin Bar pierces the Exponential Moving Average Fan
Exit Conditions:
a) Trailing stop is hit
b) Moving Averages cross-back (optional)
c) It's the weekend
Default Robot Settings:
Equity Risk (%): 3 //how much account balance to risk per trade
Stop Loss (x*ATR, Float): 0.5 //stoploss = x * ATR, you can change x
Stop Loss Trail Points (Pips): 1 //the magic sauce, not sure how this works
Stop Loss Trail Offset (Pips): 1 //the magic sauce, not sure how this works
Slow SMA (Period): 50 //slow moving average period
Medium EMA (Period): 18 //medium exponential moving average period
Fast EMA (Period): 6 //fast exponential moving average period
ATR (Period): 14 // average true range period
Cancel Entry After X Bars (Period): 3 //cancel the order after x bars not triggered, you can change x
Backtest Results (2019 to 2020, H1, Default Settings):
AUDUSD - 1604% profit, 239.6 profit factor, 4.9% drawdown (INSANE)
NZDUSD - 1688.7% profit, 100.3 profit factor, 2.5% drawdown
GBPUSD - 1168.8% profit, 98.7 profit factor, 0% drawdown
USDJPY - 900.7% profit, 93.7 profit factor, 4.9% drawdown
USDCAD - 819% profit, 31.7 profit factor, 8.1% drawdown
EURUSD - 685.6% profit, 26.8 profit factor, 5.9% drawdown
USDCHF - 1008% profit, 18.7 profit factor, 8.6% drawdown
GBPJPY - 1173.4% profit, 16.1 profit factor, 7.9% drawdown
EURAUD - 613.3% profit, 14.4 profit factor, 9.8% drawdown
AUDJPY - 1619% profit, 11.26 profit factor, 9.1% drawdown
EURJPY - 897.2% profit, 6 profit factor, 13.8% drawdown
EURGBP - 608.9% profit, 5.3 profit factor, 9.8% drawdown (NOT TOO SHABBY)
As you can clearly see above, this forex robot is projected by the Tradingview backtester to be INSANELY profitable for all common forex pairs. So what was the difference between this strategy and my previous strategies? Check my code and look for "trail_points" and "trail_offset"; you can even look them up in the PineScript v4 documentation. They specify a trailing stop as the exit condition, which automatically closes the trade if price reverses against you.
I however suspect that the backtester is not properly calculating intra-bar price movement, and is using a simplified model. With this simplfied approach, the trailing stop code becomes some sort of "holy grail" generator, making every trade entered profitable.
Risk Warning:
This is a forex trading strategy that involves high risk of equity loss, and backtest performance will not equal future results. You agree to use this script at your own risk.
Hint:
To get more realistic results, and *maybe* overcome the intrabar simulation error, change the settings to: "Stop Loss Trail Points (pips)": 100
I am not sure if this eradicates the bug, but the entries and exits look more proper, and the profit factors are more believable.
Maguila Strategy by Rodrigo CohenREAD BEFORE USE!!!
!!!ALERT!!!! THIS CODE ONLY WORKS WITH WDO AND WIN , BOTH WITH TIMEFRAMES 1 MINUTE AND 5 MINUTE.
This is a test to the Maguila strategy created by Rodrigo Cohen.
This code MUST be validaded by Rodrigo Cohen, use ONLY for tests.
Some results are different from Cohen's videos, so the McGuinley indicator needs some ajustments.
FUTURES: WIN , WDO
TIME FRAME: 1 Minute (also works in 5 minutes)
INDICATORS: McGinley Dynamic accompanied by the Exponential Moving Average coloring rule of 21 and 42 periods
MARKET TYPE: In trend (up or down)
INPUT:
1. When buying (long) = Market in an upward trend, the average of 21 crosses that of 42 upwards. When the price returns to the average of 21, wait for a positive candle in the Maguila's color and buy a break from the maximum of this signal candle.
2. On sale (short) = Downtrend market, the average of 21 crosses that of 42 downwards. When the price returns to the average of 21, wait for a negative candle in the Maguila's color and sell when the minimum of this signal candle breaks.
GAIN and LOSS are technical.
DEFAULT VALUES:
Averages:
- 1 minute - EMA 21 and EMA 42
- 5 minute - EMA 17 and EMA 34
Gains and Loss:
- WDO - 10 points
- WIN - 200 points
Tabajara simple versionIndicator Tabajara from the brazilian trader André Machado.
Simple version with moving averages SMA 20 and SMA 200.
If fast moving average (20) is ascending, positive candles will receive green color.
Descending fast moving average (20) makes negative candles receive red color.
In other cases the candles will be gray (positive) and black (negative).
The slow moving average (SMA 200) shows the primary trend.
It´s also possible using the indicator with exponential moving averages.
Noro's CrossMASimple strategy. Price and moving average crossing. There is a choice of type of moving average.
Moving average types
SMA = Simple Moving Average
EMA = Exponential Moving Average
VWMA = Volume-Weighted Moving Average
DEMA = Double Exponential Moving Average
TEMA = Triple Exponential Moving Average
KAMA = Kaufman's Adaptive Moving Average
PCMA = Central line of price channel (Donchian channel)
Well Rounded Moving AverageIntroduction
There are tons of filters, way to many, and some of them are redundant in the sense they produce the same results as others. The task to find an optimal filter is still a big challenge among technical analysis and engineering, a good filter is the Kalman filter who is one of the more precise filters out there. The optimal filter theorem state that : The optimal estimator has the form of a linear observer , this in short mean that an optimal filter must use measurements of the inputs and outputs, and this is what does the Kalman filter. I have tried myself to Kalman filters with more or less success as well as understanding optimality by studying Linear–quadratic–Gaussian control, i failed to get a complete understanding of those subjects but today i present a moving average filter (WRMA) constructed with all the knowledge i have in control theory and who aim to provide a very well response to market price, this mean low lag for fast decision timing and low overshoots for better precision.
Construction
An good filter must use information about its output, this is what exponential smoothing is about, simple exponential smoothing (EMA) is close to a simple moving average and can be defined as :
output = output(1) + α(input - output(1))
where α (alpha) is a smoothing constant, typically equal to 2/(Period+1) for the EMA.
This approach can be further developed by introducing more smoothing constants and output control (See double/triple exponential smoothing - alpha-beta filter) .
The moving average i propose will use only one smoothing constant, and is described as follow :
a = nz(a ) + alpha*nz(A )
b = nz(b ) + alpha*nz(B )
y = ema(a + b,p1)
A = src - y
B = src - ema(y,p2)
The filter is divided into two components a and b (more terms can add more control/effects if chosen well) , a adjust itself to the output error and is responsive while b is independent of the output and is mainly smoother, adding those components together create an output y , A is the output error and B is the error of an exponential moving average.
Comparison
There are a lot of low-lag filters out there, but the overshoots they induce in order to reduce lag is not a great effect. The first comparison is with a least square moving average, a moving average who fit a line in a price window of period length .
Lsma in blue and WRMA in red with both length = 100 . The lsma is a bit smoother but induce terrible overshoots
ZLMA in blue and WRMA in red with both length = 100 . The lag difference between each moving average is really low while VWRMA is way more precise.
Hull MA in blue and WRMA in red with both length = 100 . The Hull MA have similar overshoots than the LSMA.
Reduced overshoots moving average (ROMA) in blue and WRMA in red with both length = 100 . ROMA is an indicator i have made to reduce the overshoots of a LSMA, but at the end WRMA still reduce way more the overshoots while being smoother and having similar lag.
I have added a smoother version, just activate the extra smooth option in the indicator settings window. Here the result with length = 200 :
This result is a little bit similar to a 2 order Butterworth filter. Our filter have more overshoots which in this case could be useful to reduce the error with edges since other low pass filters tend to smooth their amplitude thus reducing edge estimation precision.
Conclusions
I have presented a well rounded filter in term of smoothness/stability and reactivity. Try to add more terms to have different results, you could maybe end up with interesting results, if its the case share them with the community :)
As for control theory i have seen neural networks integrated to Kalman flters which leaded to great accuracy, AI is everywhere and promise to be a game a changer in real time data smoothing. So i asked myself if it was possible for a neural networks to develop pinescript indicators, if yes then i could be replaced by AI ? Brrr how frightening.
Thanks for reading :)